package main

import "fmt"

// 写一个函数 InsertStringSlice() 将切片插入到另一个切片的指定位置。

// @Title InsertStringSlice
// @param dst []string 要被插入的目标切片
// @param plug []string 要插入的切片
func InsertStringSlice(dst []string, plug []string, p int) (r []string) {
	len_d := len(dst)
	len_p := len(plug)
	len_all := len_d + len_p
	// 修正p
	if p < 0 {
		p = 0
	}
	if p > len_d {
		p = len_d
	}
	// 扩容
	if len_all > cap(dst) {
		r = make([]string, len_all)
	}
	copy(r[0:p], dst[0:p])
	copy(r[p:(p+len_p)], plug)
	copy(r[p+len_p:], dst[p:])

	return r
}

func main() {
	dst := []string{"wendi", "qin", "lulaoye", "keli"}
	ins := []string{"babala", "bannite"}
	fmt.Println("insert ins to dst in index 2: ", InsertStringSlice(dst, ins, 2))
}
